package com.zang.blogz.service;

import com.zang.blogz.entity.ArticleTag;
import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.models.auth.In;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 朵橙i
 * @since 2022-06-17
 */
public interface ArticleTagService extends IService<ArticleTag> {

    /**
     * 批量保存所关联信息
     *
     * @param articleId 文章id
     * @param tagIds    标签id Set
     * @return
     */
    List<ArticleTag> saveArticleTag(Integer articleId, List<Integer> tagIds, Boolean isAdd);

    /**
     * 根据文章id删除所对应的
     *
     * @param articleId 文章id
     * @return
     */
    Boolean deleteArticleTagByArticleId(Integer articleId);

    /**
     * 得到标签和引用其的文章总数键值对
     *
     * @return
     */
    Map<Integer, Integer> getTagRefCountArticle();

    /**
     * 根据标签id得到标签下的文章数
     *
     * @return
     */
    long getArticleCountByTagId(Integer tagId);
}
